package com.lancoo.edu.platform.operation.commons.utils;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author zhang.ws
 * @date 2023/12/7 14:08
 * @description 分页工具类
 */
public class PageUtil {


    /**
     * 获取分页结果
     *
     * @param target 目标列表
     * @param page   页
     * @param size   页大小
     * @return 分页结果
     */
    public static <T> IPage<T> getPage(Integer page, Integer size, List<T> target) {
        IPage<T> result = new Page<>(page, size, target.size());
        int startIndex = 0;
        if (page > 1) {
            startIndex = (page - 1) * size;
        }
        //异常，无数据
        if (target.size() < startIndex) {
            result.setRecords(new ArrayList<>());
            return result;
        }
        result.setRecords(target.stream().skip(startIndex).limit(size).collect(Collectors.toList()));
        return result;
    }

}
